package com.sky.controller.courier;

import com.sky.dto.CourierTradeQueryDto;
import com.sky.dto.PickUpDTO;
import com.sky.pojo.Courier;
import com.sky.pojo.CourierTradeOrder;
import com.sky.result.Result;
import com.sky.service.courier.CourierTradeOrderService;
import com.sky.service.user.OrderDispatchService;
import com.sky.vo.CourierTradeOrderVO;
import com.sky.vo.OrderDetailVO;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/trade")
public class CourierTradeOrderController {


    @Autowired
    private CourierTradeOrderService tradeOrderService;


    @GetMapping("/queryPendingOrders")
    @ApiOperation("待接单查询")
    public Result queryPendingOrders(Integer status, Integer courierId){
       List<CourierTradeOrderVO> courierTradeOrderVOList= tradeOrderService.queryCourierTradeOrderByCourierIdAndStatus(status,courierId);
       return Result.success(courierTradeOrderVOList);
    }
    @GetMapping("/queryTobePickedUpTradeOrders")
    @ApiOperation("待取货查询")
    public Result queryTobePickedUpTradeOrders(Integer status, Integer courierId){
        List<CourierTradeOrderVO> courierTradeOrderVOList= tradeOrderService.queryCourierTradeOrderByCourierIdAndStatus(status,courierId);
        return Result.success(courierTradeOrderVOList);
    }
    @GetMapping("/toBedeliveredList")
    @ApiOperation("待送达查询")
    public Result toBedeliveredList(Integer status, Integer courierId){
        List<CourierTradeOrderVO> courierTradeOrderVOList= tradeOrderService.queryCourierTradeOrderByCourierIdAndStatus(status,courierId);
        return Result.success(courierTradeOrderVOList);
    }
    @GetMapping("/queryCanceldTradeOrderList")
    @ApiOperation("已取消查询")
    public Result queryCanceldTradeOrderList(Integer status, Integer courierId){
        List<CourierTradeOrderVO> courierTradeOrderVOList= tradeOrderService.queryCourierTradeOrderByCourierIdAndStatus(status,courierId);
        return Result.success(courierTradeOrderVOList);
    }
     @GetMapping("/queryTradeOrderByTradeNo")
     @ApiOperation("根据订单号查询运单信息")
    public Result<CourierTradeOrder> queryCanceldTradeOrderByTradeNo(String tradeNo){
         CourierTradeOrder courierTradeOrder=tradeOrderService.queryCanceldTradeOrderByTradeNo(tradeNo);
        return Result.success(courierTradeOrder);
     }
     @GetMapping("/confirmPickUpList")
     @ApiOperation("查询运单菜品详情")
     public Result<List<OrderDetailVO>> confirmPickUpList(String tradeNo){
         List<OrderDetailVO> list=tradeOrderService.confirmPickUpList(tradeNo);
         return Result.success(list);
      }
    @PutMapping("/confirmPickUp")
    @ApiOperation("确认取货")
    public Result<String> confirmPickUp(@RequestBody PickUpDTO pickUpDTO){
      tradeOrderService.confirmPickUp(pickUpDTO);
      return Result.success();
    }
    @GetMapping("/queryWaybillsByDate")
    public Result<List<CourierTradeOrderVO>> queryWaybillsByDate(CourierTradeQueryDto dto){
        List<CourierTradeOrderVO> list=tradeOrderService.queryWaybillsByDate(dto);
        return Result.success(list);
    }
}
